package cn.drenal.capcap.service;

import cn.drenal.capcap.entity.SysPermission;
import cn.drenal.capcap.entity.dto.PermissionDTO;
import cn.drenal.capcap.entity.vo.PermissionTreeVO;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * 权限服务接口
 */
public interface SysPermissionService extends IService<SysPermission> {
    /**
     * 创建权限
     *
     * @param permissionDTO 权限信息
     * @return 创建结果
     */
    SysPermission createPermission(PermissionDTO permissionDTO);

    /**
     * 更新权限
     *
     * @param id 权限ID
     * @param permissionDTO 权限信息
     * @return 更新结果
     */
    SysPermission updatePermission(Long id, PermissionDTO permissionDTO);

    /**
     * 删除权限
     *
     * @param id 权限ID
     */
    void deletePermission(Long id);

    /**
     * 根据ID查询权限
     *
     * @param id 权限ID
     * @return 权限信息
     */
    SysPermission getPermissionById(Long id);

    /**
     * 获取权限列表
     *
     * @return 权限列表
     */
    List<SysPermission> getPermissionList();

    /**
     * 获取权限树
     *
     * @return 权限树
     */
    List<PermissionTreeVO> getPermissionTree();
}